package cn.yuli.store;

import cn.yuli.pizza.Pizza;

/**
 * 工程模式：披萨工厂类，用于约束实现工厂
 * 工厂方法
 * @author yuli
 *
 */
public abstract class PizzaStoreFactory {
	protected Pizza pizza;
	/**
	 * 工厂方法：创建披萨的方法
	 * @param type 披萨类型
	 * @return
	 */
	public abstract Pizza createPizza(String type);
	/**
	 * 订购披萨
	 * @param type
	 * @return
	 */
	public Pizza orderPizza(String type){
		pizza = createPizza(type);
		pizza.prepare();
		pizza.bake();
		pizza.cut();
		pizza.box();
		return pizza;
	}
}
